package com.heihei.decompression.script;

import com.heihei.config.ConfigProperties;

import java.io.File;

public class DeComUtil {

    /**
     * 方法描述: 根据文件生成一行命令
     *
     * @param srcFilePath
     * @param desDir
     * @param password
     * @param isNewLine
     * @Return {@link String}
     * @throws
     * @author duanhengfei
     * @date 2021年02月14日 09:46:02
     */
    public static String generateLine(File srcFilePath, File desDir, String password, Boolean isNewLine){
        //"C:\Develop\7-Zip\7z.exe" x "F:\VMWare\wangdong\2016年.7z" -o"G:\wangdong" -p"我爱魔性论坛"
        StringBuilder sb = new StringBuilder("\"");
        sb.append(ConfigProperties.ZIP_PATH).append("\" x \"").append(srcFilePath.getAbsolutePath()).append("\" -o\"").append(desDir.getAbsolutePath()).append("\"");
        //是否有密码
        if(password != null && password.length() != 0) {
            sb.append(" -p\"").append(password);
        }
        if(isNewLine) {
            sb.append("\"\r\n");
        }
        return sb.toString();
    }
    public static String generateLine(File srcFilePath, File desDir, String password){
        return generateLine(srcFilePath, desDir, password, true);
    }

    //根据文件生成一行命令，解压到当前文件夹（多套一层目录）
    public static String generateLine(File srcFilePath, String password, Boolean isNest, Boolean isNewLine) {
        String name = srcFilePath.getName();
        int lastDotIndex = name.lastIndexOf(".");
        if(!isNest) {
            return generateLine(srcFilePath, srcFilePath.getParentFile(), password, isNewLine);
        } else {
            return generateLine(srcFilePath, new File(srcFilePath.getParent(), name.substring(0, lastDotIndex)), password, isNewLine);
        }
    }
    public static String generateLine(File srcFilePath, String password, Boolean isNest) {
        return generateLine(srcFilePath, password, isNest, true);
    }

    //根据文件生成一行命令，解压到当前文件夹（多套一层目录）
    public static String generateLine(File srcFilePath, String password) {
        return generateLine(srcFilePath, password, false);
    }

}
